package day01;

import sun.java2d.pipe.SpanShapeRenderer;

import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.Instant;
import java.time.LocalDate;
import java.util.Calendar;
import java.util.Date;
import java.text.ParseException;

//1.Date
//2.Calender
//3.LocalTime
public class Homework2 {
    public static void main(String[] args)throws ParseException {
        date();
        date1();
        date2();
    }
    public static void date() throws ParseException{
        Date date=new Date();
        System.out.println(date);
        //y年 M月 d日 h12进制 H24 m分 s秒 S毫秒
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String result=sdf.format(date);
        System.out.println(result);
        //格式按照上面定义格式一样
        Date date1=sdf.parse("2024/06/21 23:25:14");
        System.out.println(date1);
        //util==>sql
        java.sql.Date sqlDate=new java.sql.Date(date1.getTime());
        //sql==>util
        Date date2=new Date(sqlDate.getTime());
    }
    public static void date1(){
        //1.Calender日历对象
        Calendar cal=Calendar.getInstance();
        Date date=new Date();
        cal.setTime(date);
        cal.set(2024,12,24);
        cal.get(Calendar.DAY_OF_MONTH);//这个月有多少天
        cal.add(Calendar.YEAR,2);//加两年
    }
    public static void date2(){
        //instant:代表时间戳（时间完整格式）
        //LocalDate:代表年-月-日
        //LocalTime:代表时：分：秒
        //LocalDatetime:代表年-月-日 时：分：秒
        //now()静态方法表示当前时间
        //of()静态方法 手动传入年月日 时分秒
        Instant in=Instant.now();
        System.out.println("时间戳"+in);

        LocalDate ld=LocalDate.now();
        System.out.println("日期"+ld);

        LocalDate ld2=LocalDate.of(2024,8,14);
        System.out.println("日期"+ld2);

        DayOfWeek dw=ld.getDayOfWeek();
        System.out.println("星期"+dw);

        //提供修改的方法
        //日期。with()
        ld=ld.with(DayOfWeek.WEDNESDAY);
        System.out.println("修改成星期三"+ld);

        //对日期做加减法
        ld=ld.plusMonths(1);
        System.out.println("加一个月"+ld);

        ld=ld.minusDays(1);
        ld=ld.plusMonths(-2);
        System.out.println("减去一天和两个月"+ld);

        //计算闰年
        ld.isLeapYear();

        //日期.until

    }
}
